Skip to content

DX-3029: Document init commands on every box and public URLs that wake the box - #852

Merged
CahidArda merged 6 commits into
mainfrom
DX-3029-wake-on-request-docs
Oct 6, 2026
Merged

CahidArda merged 6 commits into
mainfrom
DX-3029-wake-on-request-docs

Conversation

@alitariksahin

@alitariksahin alitariksahin commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Docs side of the public URL work. Backend is merged and live, SDK and CLI are in upstash/box#247, console is in upstash/upstash-console-v2#1529.

Init commands, mentioned where boxes are created

Init commands were documented only inside the keep-alive page, framed as a keep-alive feature, ending with "Init command management is only available when keepAlive is enabled." That is now false: a startup script runs on every box.

Rather than a page of their own, they get a short section under Create a Box in the quickstart: pass initCommand to run a startup script once per container start, on create, on resume and after a snapshot restore; it runs from the workspace root; it can be read, changed or removed later on any box including a paused one; and a snapshot restore does not inherit it. The keep-alive page keeps its own example and links there.

Public URLs and paused boxes

The public URLs page now describes what a URL does while its box is paused: a request resumes the box and is held until the app's port is listening. That wait is bounded at 30 seconds, after which the request gets a 503 with Retry-After: 5, a self-refreshing page for browsers and a plain 503 otherwise, while the box keeps resuming in the background. Auth is checked before the box is woken. Every request example sets an explicit client timeout longer than the cold-start window, and the Python ones say why, since httpx defaults to five seconds.

Corrections, not just additions

Public URLs do not expire on pause. The page said they expire when the box is paused. They survive sleep and are removed only when the box is deleted.

Snapshot restore does not inherit the init command. The backend deletes the stored script when no init command is supplied on restore, so the docs tell callers to pass it again.

Checks

mint broken-links reports nothing in the Box section; the failures it reports under workflow/ are pre-existing and untouched. No em dashes added. The generated llms files are not regenerated in this branch's latest commit because the checkout carries unrelated local edits; a regeneration on merge will pick everything up.

Init commands were documented only inside keep-alive, which is no longer where
they belong: a startup script now runs on every box. They get their own page
under Lifecycle, and keep-alive links to it instead of owning it.

Corrects three things that were wrong rather than merely incomplete:

Public URLs do not expire when a box is paused. They survive sleep and are
removed only when the box is deleted.

A box restored from a snapshot does not inherit the snapshot's init command.
The backend clears the stored script when no init command is supplied, so the
caller has to pass it again on the restore.

The wake wait is bounded at 30 seconds and then answers 503 with Retry-After,
so the page no longer promises the app's response unconditionally. Every
request example sets a client timeout longer than the cold-start window,
since httpx defaults to five seconds.
@mintlify

mintlify Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
upstash 🟢 Ready View Preview Oct 6, 2026, 12:33 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@context7

context7 Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Docs7 for upstash.com

Result Status Action
Deployment ✅ Ready Open preview
Content review ✅ Passed. No problems found. View findings

Commit 81a8cbc · Updated 2026-10-06 12:34 UTC · View build details

@linear-code

linear-code Bot commented Sep 21, 2026

Copy link
Copy Markdown

DX-3029

@context7
context7 Bot temporarily deployed to Docs7 Preview: DX-3029-wake-on-request-docs September 21, 2026 12:33 Destroyed
The backend made it unconditional and the option no longer exists anywhere, so
the docs describe it as plain behaviour: a request to the URL resumes the box
and is held until the port is listening, bounded at 30 seconds with a 503 and
Retry-After after that, with auth checked before the wake. The create examples
that passed the option, the field on the list output and the warning about
reachability are gone. The init commands page keeps its end-to-end example with
the option removed from the public URL call.
@alitariksahin alitariksahin changed the title DX-3029: Document wake-on-request URLs and init commands on every box DX-3029: Document init commands on every box and public URLs that wake the box Sep 22, 2026
@context7
context7 Bot temporarily deployed to Docs7 Preview: DX-3029-wake-on-request-docs September 22, 2026 09:12 Destroyed
alitariksahin and others added 2 commits September 22, 2026 13:14
…f their own

A short section under Create a Box in the quickstart now carries what matters:
pass initCommand to run a startup script once per container start, on create,
resume and snapshot restore; it runs from the workspace root; it can be read,
changed or removed later on any box including a paused one; and a snapshot
restore does not inherit it. Every link that pointed at the standalone page
points there now.
@context7
context7 Bot temporarily deployed to Docs7 Preview: DX-3029-wake-on-request-docs September 22, 2026 10:21 Destroyed
@context7 context7 Bot mentioned this pull request Sep 22, 2026
@context7
context7 Bot temporarily deployed to Docs7 Preview: DX-3029-wake-on-request-docs October 6, 2026 12:34 Destroyed
@CahidArda
CahidArda merged commit a8ba772 into main Oct 6, 2026
4 of 5 checks passed
@CahidArda
CahidArda deleted the DX-3029-wake-on-request-docs branch October 6, 2026 12:43

This branch was successfully deployed

1 active deployment
Docs7 Preview: DX-3029-wake-on-request-docs — 81a8cbca Deployed Oct 6, 2026 by context7[bot]
staging — 81a8cbca Deployed Oct 6, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants